package com.itheima.mall.api.pms;

import com.itheima.mall.dto.ProductAttributeDto;
import com.itheima.mall.pojo.pms.ProductAttribute;
import com.itheima.mall.pojo.pms.ProductAttributeCategory;
import com.itheima.mall.vo.AttrInfoVo;
import com.itheima.mall.vo.PageResult;
import com.itheima.mall.vo.ProductAttributeCategoryVo;

import java.util.List;

public interface ProductAttributeServiceApi {
    //添加商品属性分类
    Boolean categoryCreate(String name);

    //删除单个商品属性分类
    Boolean categoryDelete(Long categoryId);

    //分页获取所有商品属性分类
    PageResult categoryList(Integer pageNum, Integer pageSize);

    //获取所有商品属性分类及其下属性
    List<ProductAttributeCategoryVo> categoryListWithAttr();

    //获取单个商品属性分类信息
    ProductAttributeCategory selectCategory(Long categoryId);

    //修改商品属性分类
    void categoryUpdate(Long categoryId, String name);

    //添加商品属性信息
    void create(ProductAttributeDto productAttributeDto);

    //批量删除商品属性
    void delete(Integer[] ids);

    //查询单个商品属性
    ProductAttribute findById(Long productAttributeId);

    //修改商品属性信息
    void update(Long productAttributeId, ProductAttribute productAttribute);

    //根据分类查询属性列表或参数列表
    PageResult listCid(Integer cid, Integer pageNum, Integer pageSize, Integer type);

    //商品分类的id获取商品属性及属性分类
    List<AttrInfoVo> attrInfo(Long id);
}
